﻿namespace DotNetStar.OpenSDK.WeChat.MP
{
    /// <summary>
    /// 生成带参数的二维码 api 响应。
    /// </summary>
    /// <seealso cref="WeChatApiResponse" />
    public class QrCodeApiResponse:WeChatApiResponse
    {
        /// <summary>
        /// 获取的二维码ticket，凭借此ticket可以在有效时间内换取二维码。
        /// </summary>
        public string Ticket { get; set; }
        /// <summary>
        /// 该二维码有效时间，以秒为单位。 最大不超过2592000（即30天）。
        /// </summary>
        public long Expire_Seconds { get; set; }
        /// <summary>
        /// 二维码图片解析后的地址，开发者可根据该地址自行生成需要的二维码图片。
        /// </summary>
        /// <remarks>这个地址好像没啥用？</remarks>
        public string Url { get; set; }

        /// <summary>
        /// 获取使用当前的 ticket 换取微信二维码的 url 地址，仅在  <see cref="ApiResponse.IsSucceed"/> 是 <c>true</c> 时才会显示。
        /// </summary>
        [ArgumentName("ticket_url")]
        public string TicketUrl => base.IsSucceed ? $"https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket={this.Ticket}" : string.Empty;
    }
}
